home *** CD-ROM | disk | FTP | other *** search
- #!/bin/csh -f
- #
- # This shell script outputs all procedures that are undefined in a
- # library.
- #
- # Synopsis:
- # findu.csh lib1.a lib2.a ... > outfile
- #
-
- if ( $#argv < 1 ) then
- echo "Usage: $0 lib.a > outfile"
- exit 0
- endif
-
- set undefFile1 = /usr/var/tmp/tmp1$$
- set defFile1 = /usr/var/tmp/tmp2$$
- set nmOutputFile = /usr/var/tmp/tmp5$$
-
- rm -f $undefFile1 $defFile1
-
- foreach lib ( $argv )
- nm $lib > $nmOutputFile
- grep 'Proc' $nmOutputFile | grep 'Undefined' | \
- awk '{print $NF,"Proc"}' >> $undefFile1
- grep 'Global' $nmOutputFile | grep 'Undefined' | \
- awk '{print $NF,"Global"}' >> $undefFile1
- grep 'Proc' $nmOutputFile | grep -v 'Undefined' | \
- awk '{print $NF,"Proc"}' >> $defFile1
- grep 'Global' $nmOutputFile | grep -v 'Undefined' | \
- awk '{print $NF,"Global"}' >> $defFile1
- end
-
- rm $nmOutputFile
-
- set undefFile2 = /usr/var/tmp/tmp3$$
- set defFile2 = /usr/var/tmp/tmp4$$
-
- sort -u $undefFile1 > $undefFile2
- sort -u $defFile1 > $defFile2
-
- set undefFile3 = /usr/var/tmp/tmp6$$
-
- comm -23 $undefFile2 $defFile2 > $undefFile3
-
- foreach undef ( `cat $undefFile3` )
- grep ${undef}_ $defFile2 >& /dev/null
- if ( $status == 0 ) then
- echo "#define $undef ${undef}_" >> /usr/var/tmp/defines.h
- endif
- end
-
- cat $undefFile3
-
- rm -f $undefFile1 $defFile1 $undefFile2 $defFile2 $undefFile3
-